Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deps/node engines <16 #94

Merged
merged 3 commits into from
Jul 11, 2023
Merged

Deps/node engines <16 #94

merged 3 commits into from
Jul 11, 2023

Conversation

YOU54F
Copy link
Member

@YOU54F YOU54F commented May 18, 2023

Dropping support for Node versions below 16 in our project.

Why

  • Active development of Node 14 ended 21 Apr 2020

    • Active support of Node 14 ended 19 Oct 2021
    • Security support of Node 14 ended 30 Apr 2023
  • Active development of Node 16 ended 20 Apr 2021

    • Active support of Node 16 ended 18 Oct 2022
    • Security support of Node 16 will end 11 Sep 2023 ( 3 months & 3 weeks at time of writing)

Main problems of supporting EOL versions

  • Outdated code: Supporting older versions may lead to the use of outdated and less optimal solutions.
  • Increased development and debugging time: Supporting older versions requires extra effort as we need to take into account the peculiarities of each supported version.
  • Library compatibility issues: Many modern libraries no longer support older versions, which may create difficulties in their usage and integration.
  • Missing new features: Older versions do not support some of the new features and improvements that have been introduced in more recent versions
  • Decreased performance: Supporting older versions may reduce the project's performance as some optimizations are only available in newer versions.
    • Complicated testing: No available CI hardware to test against Maintaining (including tricks with CI/CD, Docker support, and local testing) across exotic versions requires more time and resources.

Actions

Considering the aforementioned problems, it is recommended to drop support for versions from testing in our CI systems, for any versions out of security support

We use the following reference site https://endoflife.date

Tested Platforms

We attempt to be tested cross-platform/architecture, across multiple versions. See the
following table for progress.

Legend

  • βœ… : Automated testing in CI
  • 🚧 : Awaiting CI/CD build with Cirrus-CI
  • πŸ‘·πŸ½ : No available CI hardware to test against

Testing Matrix

Architechture Version Windows Linux macOS
x86_64 (AMD64) 14.x βœ… βœ… βœ…
x86_64 (AMD64) 16.x βœ… βœ… βœ…
x86_64 (AMD64) 18.x βœ… βœ… βœ…
x86_64 (AMD64) 20.x βœ… βœ… βœ…
AArch64 (ARM64) 14.x πŸ‘·πŸ½ 🚧 🚧
AArch64 (ARM64) 16.x πŸ‘·πŸ½ 🚧 🚧
AArch64 (ARM64) 18.x πŸ‘·πŸ½ 🚧 🚧
AArch64 (ARM64) 20.x πŸ‘·πŸ½ 🚧 🚧

##Β Notifying users

  • Update node_engines field to set to

    "engines": {
      "node": ">=16"
    },
    
  • Update testing matrix, to drop node 14

  • Add badges to README, to notify user

GitHub release
Npm package license
Npm package version
Minimum node.js version

Npm package total downloads
Npm package yearly downloads
Npm package monthly downloads
Npm package daily downloads
Npm package dependents

Maintenance
Build and test
Publish and release
Linux
macOS
Windows

@YOU54F YOU54F changed the title Deps/node engines gteq16 Deps/node engines <16 May 18, 2023
package.json Outdated
@@ -20,7 +20,10 @@
},
"license": "MIT",
"peerDependencies": {
"msw": ">=0.35.0"
"msw": ">=0.36.9"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't mean to add this, this is for a separate issue, to upgrade msw to 1.x

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a breaking change, so I think it's ok to do it at the same time as long as it's documented.

Copy link

@TimothyJones TimothyJones left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! Left a commend and an unrelated observation in line πŸ™Œ

package.json Outdated
@@ -20,7 +20,10 @@
},
"license": "MIT",
"peerDependencies": {
"msw": ">=0.35.0"
"msw": ">=0.36.9"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's probably a breaking change, so I think it's ok to do it at the same time as long as it's documented.

@@ -115,7 +115,7 @@ describe("API - With MSW mock generating a pact", () => {

test("unhandled route", async () => {
await expect(API.getProduct("11")).rejects.toThrow(
/^connect ECONNREFUSED (127.0.0.1|::1):8081$/
/^Error: connect ECONNREFUSED (127.0.0.1|::1):8081.*$/

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we improve this error message more?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it’s just a generic error thrown from axios, ( in test code ), rather than users code. msw already logs out to the console that the request was unhandled

@YOU54F YOU54F merged commit 4c83113 into main Jul 11, 2023
24 checks passed
@YOU54F YOU54F deleted the deps/node_engines_gteq16 branch November 9, 2023 15:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants